package com.example.demo.stream.annotation;

import java.lang.annotation.*;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RedisStreamListener {

    /**
     * Stream Key (类似 Topic)
     */
    String topic();

    /**
     * 消费组
     */
    String consumerGroup();

    /**
     * 消费者名称（唯一）
     */
    String consumer();

    /**
     * 消费线程池大小
     */
    int consumeThreadMax() default 1;

    /**
     * 最大重试次数（超过后需要人工处理）
     */
    int maxRetryCount() default 3;

    /**
     * 消息最小 idle 时间（毫秒），超过这个时间才会触发重试
     */
    long retryIdleTime() default 10000;

    /**
     * 定时扫描 pending list 的间隔（秒）
     */
    int retryInterval() default 30;
}
